有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java将模型类添加到泛型列表时抛出错误

我是Android开发新手,在这里无法解决这个问题。我创建了一个名为video的空白类,它有两个属性name和url:

public class Video {
    public String _name;
    public String _Url;

    public Video(String name, String Url)
    {
        _name = name;
        _Url = Url;
    }
    public String getName()
    {
       return _name;
    }
    public String getUrl()
    {
       return _Url;
    }

}

然后,我有一个用于将视频添加到的常规列表。在活动调用VideosListActivity中,将视频添加到列表时会引发错误:

public List<Video> ListResult;
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        //Update view

        setContentView(R.layout.videos);

        setTitle("VIDEOS");

        //--videos created here
        Video NewVideo = new Video("video one","http://www.youtube.com/watch?v=cxLG2wtE7TM");

        ListResult.add(NewVideo);

        Log.v("VideoList", "Opened list");

此错误是引发的:

02-06 13:10:05.660: E/AndroidRuntime(23432): FATAL EXCEPTION: main
02-06 13:10:05.660: E/AndroidRuntime(23432): java.lang.RuntimeException: Unable to start activity ComponentInfo{uk.co.mosquitodigital.panic/uk.co.mosquitodigital.panic.VideoListActivity}: java.lang.NullPointerException
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2225)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2260)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.app.ActivityThread.access$600(ActivityThread.java:139)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.app.ActivityThread$H.handleMessage(ActivityThread.java:1277)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.os.Handler.dispatchMessage(Handler.java:99)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.os.Looper.loop(Looper.java:156)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.app.ActivityThread.main(ActivityThread.java:5045)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at java.lang.reflect.Method.invokeNative(Native Method)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at java.lang.reflect.Method.invoke(Method.java:511)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at com.安卓.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at com.安卓.internal.os.ZygoteInit.main(ZygoteInit.java:551)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at dalvik.system.NativeStart.main(Native Method)
02-06 13:10:05.660: E/AndroidRuntime(23432): Caused by: java.lang.NullPointerException
02-06 13:10:05.660: E/AndroidRuntime(23432):    at uk.co.mosquitodigital.panic.VideoListActivity.onCreate(VideoListActivity.java:31)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.app.Activity.performCreate(Activity.java:4543)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1071)
02-06 13:10:05.660: E/AndroidRuntime(23432):    at 安卓.app.ActivityThread.performLaunchActivity(ActivityThread.java:2181)
02-06 13:10:05.660: E/AndroidRuntime(23432):    ... 11 more

共 (1) 个答案

  1. # 1 楼答案

    在将元素添加到ListResult列表之前,需要初始化该列表,如下所示:

    public List<Video> ListResult;
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
    
            //Update view
    
            setContentView(R.layout.videos);
    
            ListResult= new ArrayList<Video>();  //<< initialize List here